#ifndef _BiiDefines_h
#define _BiiDefines_h

/* Non Error Related Macros for MV1100 */

#define RAW_IMAGE_SIZE_X			300
#define RAW_IMAGE_SIZE_Y			300

#define PACKED_ARRAY_SIZE			5500
#define NUM_CORE					3
#define WEEKLY_SCHEDULE_SIZE		28
#define FIRST_USABLE_SCHEDULE		1
#define MAX_WEEKLY_SCHEDULES_USER	58
#define TOTAL_WEEKLY_SCHEDULES		64
#define MAX_HOLIDAY_SCHEDULES		50
#define MAX_USABLE_HOLIDAYS			46
#define WEEKLY_SCHEDULE_NEVER		0
#define WEEKLY_SCHEDULE_ALWAYS		63
#define HOLIDAYS_OBSERVED_FLAG		0x80
#define UNDEFINED_DAY_SCHEDULE		0xFFFFFFFF

#define ESI_UNUSED_BLOCK			0x00000000
#define ESI_TEMPLATE_1_BLOCK		0x00000001
#define ESI_TEMPLATE_2_BLOCK		0x00000002
#define ESI_DATA_BLOCK				0x00000004
#define ESI_ADMIN_BLOCK				0x00000005
#define ESI_LAYOUT_BLOCK			0x00000006
#define ESI_LAYOUT_POINTER_BLOCK	0x00000007

//Flow Control Direction
#define BII_FLOW_HOST_RECEPTION		1
#define BII_FLOW_MV1100_RECEPTION	2
 
//Flow Control Types
#define BII_XON_XOFF	1
#define BII_NO_FLOW		0

//Recommended (but not required) Default XOn Xoff characters
//Default XonXof flow control characters
#define BII_XOFF_DEF	(char)2
#define BII_XON_DEF		(char)3

//Commport Purge
#define BII_TXCLEAR 1
#define BII_RXCLEAR 0

//Finger Detection
#define BII_FINGER_PRESENT 2

//Auto Finger Detection Enable States
#define BII_AUTO_FINGER_DETECT_ENABLED_TEMP		0xFFFFFFFF
#define BII_AUTO_FINGER_DETECT_ENABLED			1
#define BII_AUTO_FINGER_DETECT_DISABLED			0

//MV1100 Ports
#define BII_CURRENT_PORT	0xFFFFFFFF
#define BII_HOST_PORT		0
#define BII_AUX_PORT		1

//MV1100 Host Port Modes
#define BII_RS232 0
#define BII_RS485 1


//LED Settings
#define BII_LED_OFF			0
#define BII_LED_GREEN		1
#define BII_LED_RED			2
#define BII_LED_AMBER		3 
#define BII_LED_FLASH_GREEN	-1 
#define BII_LED_FLASH_RED	-2 
#define BII_LED_FLASH_AMBER	-3

//LED Table entries
					/* 0 */					/* 1 */					/* 2 */				/* etc */				
typedef enum { BII_WAITING_STATE = 0, BII_WAVE_CARD_STATE, BII_PLACE_FINGER_STATE, BII_REMOVE_FINGER_STATE, BII_FINGER_NOT_DETECTED_STATE, BII_PASS_STATE, BII_FAIL_STATE, BII_ERROR_STATE, BII_NUM_LED_STATES  } BII_LED_STATES;
typedef enum { BII_IDLE_GROUP = 0, BII_ENROLL_GROUP, BII_VERIFY_GROUP, BII_VERIPROX_ADMIN_GROUP, BII_VERIPROX_ENROLL_GROUP, BII_VERIPROX_VERIFY_GROUP, BII_VERIPROX_DELETE_GROUP, BII_VERIPROX_ENROLL_SETUP_GROUP, BII_VERIPROX_DELETE_SETUP_GROUP, BII_NUM_LED_GROUPS  } BII_LED_GROUPS;


//Sensor Defintions
#define BII_MV11_VERIDICOM		1
#define BII_MV11_INFINEON		2
#define BII_MV11_POLAROID		3
#define BII_MV11_AUTHENTEC		4
#define BII_MV11_AUTHENTEC_ORIG 5


//Lock related Macros
#define BII_UNLOCK 0
#define BII_LOCK 1

//PreDefined Wiegand Types
#define BII_WIEGAND_GENERIC_26BIT		0x0000
#define BII_WIEGAND_APOLLO_44BIT		0x0001
#define BII_WIEGAND_NORTHERN_34BIT		0x0002
#define BII_WIEGAND_NORTHERN_34BIT_NP	0x0003
// 34 bit Ademco added 6/6/00
#define BII_WIEGAND_ADEMCO_34BIT		0x0004
#define BII_VARIABLE_BIT				0xFFFE	

	 
#endif